package com.d3works.apps.supplychain.service.declarationofexchanges;

import com.d3works.apps.base.db.EconomicArea;
import com.d3works.apps.supplychain.db.DeclarationOfExchanges;
import com.d3works.exception.D3worksException;
import java.nio.file.Path;
import java.util.Map;
import org.apache.commons.lang3.tuple.Pair;

public interface DeclarationOfExchangesService {
  /**
   * Export declaration of exchanges.
   *
   * @param declarationOfExchanges
   * @return
   * @throws D3worksException
   */
  Pair<Path, String> export(DeclarationOfExchanges declarationOfExchanges) throws D3worksException;

  /**
   * Override this method to use custom class for export.
   *
   * @param economicArea
   * @return
   */
  Map<String, Map<String, Class<? extends DeclarationOfExchangesExporter>>>
      getExportServiceClassMap(EconomicArea economicArea);
}
